// npm i bcrypt
// npm i bcryptjs
// 优先装bcrypt，如果装不了，就装bcryptjs

const bcrypt = require('bcrypt')

;(async () => {
  // 生成加密盐
  // 默认值是10，可以不填
  // 这个数越大，生成的加密盐复杂度越大，但是耗费的资源就越大（CPU）
  // 我们一般用默认值就够了
  const salt = await bcrypt.genSalt()
  console.log('生成出来的加密盐：', salt)

  // 结合盐，加密明文密码：qwe123，返回加密后的密码
  const pwd = await bcrypt.hash('qwe123', salt)
  console.log('加密后的密码：', pwd)

  // 比对密码，返回结果（布尔值），true: 相等，false：不相等
  const isEquality = await bcrypt.compare('qwe123', pwd)
  console.log('比对结果：', isEquality)
})()
